package com.qcby.financeservice.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;


import com.qcby.finance.base.service.SkuService;
import com.qcby.finance.client.dto.SkuDTO;
import com.qcby.finance.base.entity.po.SkuPo;
import com.qcby.finance.client.service.SkuDubboService;
import com.qcby.framework.common.enums.DeleteFlagEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author 劝书
 * @since 2023-02-19
 */
@Slf4j
@DubboService
public class SkuDubboServiceImpl implements SkuDubboService {

    @Resource
    private com.qcby.finance.base.service.SkuService skuService;


    /**
     * 添加sku
     *
     * @param skuDTO sku dto
     * @return int
     */
    @Override
    public int addSku(SkuDTO skuDTO) {
        SkuPo skuPo = BeanUtil.copyProperties(skuDTO,SkuPo.class);
        return skuService.getBaseMapper().insert(skuPo);
    }

    /**
     * 编辑sku
     *
     * @param skuDTO sku dto
     * @return int
     */
    @Override
    public int editSku(SkuDTO skuDTO) {
        SkuPo skuPo = BeanUtil.copyProperties(skuDTO,SkuPo.class);
        return skuService.getBaseMapper().updateById(skuPo);

    }

    /**
     * 删除sku
     *
     * @param id id
     * @return {@link Boolean}
     */
    @Override
    public Boolean deleteSku(Long id) {
        LambdaUpdateWrapper<SkuPo> updateWrapper = new LambdaUpdateWrapper<SkuPo>().eq(SkuPo::getId,id).set(SkuPo::getDelFlag, DeleteFlagEnum.DELETE.getCode());
        int update = skuService.getBaseMapper().update(null, updateWrapper);
        return update > 0;
    }

    @Override
    public Boolean savaBatch(List<SkuDTO> skuDTOS) {
        List<SkuPo> skuPos = BeanUtil.copyToList(skuDTOS, SkuPo.class);
        skuService.saveBatch(skuPos);
        return true;
    }

}
